home *** CD-ROM | disk | FTP | other *** search
-
- LINUX MODULES INSTALLATION MINI-HOWTO
-
- Contents
-
-
-
- * Purpose of this document
- * WARNING
- * Pre-requisites
- * Recompiling the kernel for modules
- * Configuring Debian or RedHat for modules
- * Configuring Slackware for modules
- * Configuring other distributions for modules
- * Copyright and other Legalities
-
-
- _________________________________________________________________
-
-
-
- Purpose of this document
-
-
-
- My experience with Linux and modules has been that the existing
- documents fail to provide a satisfactory explanation as to how to
- successfully set up Linux with modules configured and working. The
- procedure explained in this document has been successfully used
- several times, both on my own system and over the Internet to give
- directions to somebody trying to get some feature to work which
- requires a driver supplied only in module form.
-
- My own system runs from a RedHat 4.1 distribution of Linux, and it was
- on this setup that I developed the procedure. I have since
- successfully installed it on systems running from various Slackware
- distributions, and on one system running from a Debian distribution,
- and the necessary procedure to correctly configure modules under Linux
- in all three is documented herein.
-
-
- _________________________________________________________________
-
-
-
- WARNING
-
-
-
- I have recently used the same procedure with RedHat 4.2, but with
- inconsistant results on apparently identical systems. I have NOT yet
- determined what the problem is, so can make NO guarantees at this
- stage as to whether or not it will work on your system.
-
-
- _________________________________________________________________
-
-
-
- Pre-requisites
-
-
-
-
- * Before the steps in this document can be applied, the reader MUST
- have a working Linux installation in which one can get to the
- Linux prompt as user root since the majority of the steps involved
- can only be undertaken by the said user.
-
-
- * The existing kernel may be compiled either to use modules or not
- to use modules, and can even display error messages during the
- boot-up procedure as a result of modules being configured which
- aren't available at the moment, providing the above condition is
- met.
-
-
- * The source tree for the current kernel is assumed to be found
- rooted at /usr/src/linux and that is also assumed to be the
- current directory throughout this document at the start of any
- sequence of commands to be issued.
-
-
-
-
- _________________________________________________________________
-
-
-
- Compiler Speed-up
-
-
-
- If your machine has 16 or more Megabytes of RAM, there is a useful
- speed-up that can be done, which is to permit the kernel to compile
- two or modules in parallel. This will increase the load on the machine
- whilst the kernel is being recompiled, but will reduce the time during
- which the compilation will be taking place.
-
- Before you can use this method, you need to check the amount of RAM
- present in your machine, as if you set this too high, the compilation
- will actually slow down. Experience has shown that the optimum value
- depends on the amount of RAM in your system according to the following
- formula, at least for systems with up to 32 Megabytes of RAM, although
- it may be a little conservative for systems with larger amounts of
- RAM:
-
- N = [RAM in Megabytes] / 8 + 1
-
- For the benefit of those with a dislike of maths, the values for the
- common amounts of RAM are as follows:
-
- RAM size Value to use 16 Megs 3 24 Megs 4 32 Megs 5 40 Megs 6 48 Megs
- 7 56 Megs 8 64 Megs 9 80 Megs 11 96 Megs 13 112 Megs 15 128 Megs 17
-
- When you have decided on the correct number, edit the file
- /usr/src/linux/Makefile and find the line that currently reads:
-
-
-
- MAKE=make
-
-
-
-
- Replace it with one reading:
-
-
-
- MAKE=make -j N
-
-
- where N is the number determined above.
-
-
- _________________________________________________________________
-
-
-
- Recompiling the kernel for modules
-
-
-
- The kernel can be reconfigured to use modules for everything other
- than the file system mounted as root (in most cases, this is the ext2
- file system).
-
- However, there are certain items that appear to be difficult to set up
- properly as modules, so I would recommend the following be compiled
- into the kernel:
-
-
-
- * Ethernet hardware drivers.
-
-
- * SCSI CD-ROM drivers.
-
-
-
- On the other hand, there are certain driver combinations that ONLY
- work as modules, especially combinations of two or more of the
- following group:
-
-
-
- * A Parallel Printer,
-
-
- * A Parallel Port drive, such as the IOMEGA ZipDrive or JazzDrive,
- or the BackPack CD-ROM drive, and
-
-
- * The PLIP Daemon.
-
-
-
- You will need to decide what you are compiling into the kernel, and
- what as modules, but should take the above points into consideration.
- The actual choices are made during the compilation, by the second of
- the following sequence of instructions:
-
-
-
- cd /usr/src/linux
- make menuconfig
- make dep clean modules modules_install zImage
-
-
-
-
- Having done that, the module dependencies need to be mapped out. This
- is done with the following command:
-
-
-
- depmod -a
-
-
-
-
- The new kernel now needs to be inserted in the boot chain. I am
- assuming the reader is using LILO for this purpose, since this is the
- only loader I have any experience with.
-
- I recommend that one does NOT automatically insert the newly compiled
- kernel as the default Linux kernel since if it should fail, it is then
- extremely difficult to recover one's Linux setup without doing a
- complete reinstallation, which is not to be recommended. For this
- reason, I have the following entry in my /etc/lilo.conf file:
-
-
-
- image=/usr/src/linux/arch/i386/boot/zImage
- label=new
- alias=n
- read-only
- vga=ask
- optional
-
-
-
-
- This entry says that there is an OPTIONAL boot option (which will be
- ignored if the image in question does not exist) which boots the file
- /boot/newlinux if selected, and allows one to select the video mode it
- is to be booted in.
-
- Assuming the existence of the above entry in /etc/lilo.conf the
- revised kernel is already correctly located at the end of compilation,
- and it can be installed via the following command:
-
-
-
- lilo
-
-
-
-
- Having done that, the reader needs to follow the further steps
- relevant to their selected distribution, as follows:
-
- * Configuring Debian or RedHat for modules
- * Configuring Slackware for modules
- * Configuring other distributions for modules
-
-
-
-
- _________________________________________________________________
-
-
-
- Configuring Debian or RedHat for Modules
-
-
-
- Prior to carrying out the steps listed here, the steps listed in
- Recompiling the kernel for modules are assumed to have been carried
- out.
-
- The Debian and RedHat distributions have identical boot procedures, so
- also have identical procedures for configuring modules into them.
-
-
- 1. Having logged in as root, use your favourite text editor to create
- a new file called _/etc/rc.d/init.d/modules.init_ with the
- following contents therein:
-
-
- # Modules initialisation.
- #
- # Start up the module auto-loading daemon.
- /sbin/kerneld
-
- # Mount all currently unmounted auto-mounted partitions.
- /sbin/mount -a
-
-
- 2. Having created the above file, perform the following steps whilst
- logged on as root:
-
-
- cd /etc/rc.d
- chmod 755 init.d/*
- cd rc3.d
- ln -s ../init.d/modules.init 05modules.init
-
-
-
- The system can now be rebooted, and on doing so, it will be found that
- modules are fully implemented
-
-
- _________________________________________________________________
-
-
-
- Configuring Slackware for Modules
-
-
-
- Prior to carrying out the steps listed here, the steps listed in
- Recompiling the kernel for modules are assumed to have been carried
- out.
-
-
- 1. The file _/etc/rc.d/rc.M_ needs to be edited as follows:
-
-
- 1. Around line 18, there is a section reading as follows:
-
-
- # Screen blanks after 15 minutes idle time.
- /bin/setterm -blank 15
-
-
- Immediately after this, insert the following paragraph, with
- the usual blank lines either side of it:
-
-
- # Load the kernel module auto-loader.
- /sbin/kerneld
-
-
- 2. About 12 lines further down is the following:
-
-
- # if there is no /etc/HOSTNAME, fall back on this default:
- Immediately prior to this, insert the following paragraph, again
- with the usual blank lines either side of it:
-
-
- # Mount remaining unmounted auto-mount drives.
- /sbin/mount -a
-
-
- When those changes have been made, save the file.
-
-
-
- No further modifications are required for Slackware.
-
-
- _________________________________________________________________
-
-
-
- Configuring other distributions for Modules
-
-
-
- Prior to carrying out the steps listed here, the steps listed in
- Recompiling the kernel for modules are assumed to have been carried
- out.
-
- The precice procedure for other distributions has not been
- ascertained, but is probably one of the above. To determine which one,
- display a directory of the contents of the _/etc/rc.d_ directory, as
- follows:
-
-
- cd /etc/rc.d
- ls -l *.d rc.*
-
-
-
- From this resulting display, you can select one of the following three
- options:
-
-
- 1. If this list includes a directory named _init.d_ and some
- directories with names matching _rc?.d_ where the question mark is
- replaced by single digits, and does _NOT_ include a file with the
- name _rc.M_, that distribution can be configured for modules by
- following the procedure listed above for the Debian and RedHat
- Distributions.
-
- 2. If this list does not include a directory named _init.d_ but
- includes a file named _rc.M_ then that distribution can be
- configured for modules by following the procedure listed above for
- the Slackware distribution.
-
- 3. If this list matches neither of the above criteria, then the
- distribution has a boot script not covered by this HowTo. In that
- case, you are invited to contact the author of this document for
- advice.
-
-
-
-
- _________________________________________________________________
-
-
-
- Copyright and other Legalities
-
-
-
- This document is covered by the terms of the GNU General Public
- Licence (GPL), and all terms and limitations therein apply.
-
- The author may be contacted by email at rhw@bigfoot.com.
-